home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple WWDC 1996
/
WWDC96_1996 (CD).toast
/
Technology Materials
/
MacOS 8 Resources
/
Developer Tools
/
Mac OS 8 Interfaces & Libraries
/
Interfaces
/
IDLIncludes
/
Synchronization.idl
< prev
next >
Wrap
Text File
|
1996-05-01
|
2KB
|
81 lines
/*
File: Synchronization.idl
Contains: Synchronization Interfaces
Version: Technology: System 8
Release: Universal Interfaces 3.0d3 on Copland DR1
Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
Bugs?: If you find a problem with this file, send the file and version
information (from above) and the problem description to:
Internet: apple.bugs@applelink.apple.com
AppleLink: APPLE.BUGS
*/
#ifndef __SYNCHRONIZATION_IDL__
#define __SYNCHRONIZATION_IDL__
#include <somobj.idl>
#include <somcls.idl>
#ifndef __TYPES_IDL__
#include <Types.idl>
#endif
#ifndef __KERNEL_IDL__
#include <Kernel.idl>
#endif
#ifdef __SOMIDL__
#if FOR_SYSTEM8_PREEMPTIVE
/* Note: Lock, ReadWriteLock, and CountingSemaphore data structures must be LONG WORD ALIGNED in memory!*/
typedef SOMLargeStruct Lock; /* Derived from a struct of 8 bytes in size */
typedef OpaquePtr LockPtr; /* Substituted OpaquePtr for ``Lock*'' */
typedef SOMLargeStruct ReadWriteLock; /* Derived from a struct of 20 bytes in size */
typedef OpaquePtr ReadWriteLockPtr; /* Substituted OpaquePtr for ``ReadWriteLock*'' */
typedef SOMLargeStruct CountingSemaphore; /* Derived from a struct of 24 bytes in size */
typedef OpaquePtr CountingSemaphorePtr; /* Substituted OpaquePtr for ``CountingSemaphore*'' */
typedef OptionBits LockOptions;
typedef OpaquePtr InterruptState; /* Substituted OpaquePtr for ``void*'' */
/*
Simple lock routines
Locks may be created with the kLockDisablesSwis and/or kLockDisablesCompletionRoutines options,
but no others.
*/
/*
Reader/writer lock routines
ReadWriteLocks may be created with the kLockDisablesSwis, kLockDisablesCompletionRoutines,
and/or kLockAdjustsPriorities options.
*/
/*
Counting semaphore routines
CountingSemaphores currently have no options.
*/
/*
Interrupt enabling and disabling. ** MAY ONLY BE CALLED FROM PRIVILEGED CODE!!! **
Use very sparingly.
*/
/*
Atomic operations on 8-, 16-, and 32-bit entities.
** OPERATIONS THAT CROSS WORD (32-BIT) BOUNDARIES WILL FAIL!!! **
*/
/* Note: TestAndSet uses PPC bit ordering, zero is the high bit, and theBit ranges from 0 - FFFFFFFF.*/
/* Atomic primitives for singly linked list manipulation.*/
#endif
#endif /* __SOMIDL__ */
#endif /* __SYNCHRONIZATION_IDL__ */